- Replace raw strings with useMessages hook in BoardColumn and BoardComponentSelect
- Show WebsiteControls on edit screen so users can test filters
- Disable board body editing until a website is selected
- Scope website select to team websites when editing a team board
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract BoardRow, BoardColumn, BoardViewHeader, BoardEditHeader, and
boardConstants into separate files. Remove 9 console.log statements
from BoardBody and BoardProvider.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
/boards/[id] is now view mode (read-only) with an edit button.
/boards/[id]/edit is edit mode with save and cancel buttons.
Save navigates back to view, cancel discards changes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- New boards now start with one row containing one column
- Hide remove column button when only one column remains in a row
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add registerLayoutGetter to BoardContext for collecting sizes on save
- Use GroupImperativeHandle and groupRef prop for react-resizable-panels
- Add id props to Panels for layout mapping by panel id
- Collect row and column sizes via getLayout() only when saving
- Restore saved sizes via defaultSize prop on Panels
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add X button in top right corner of each column to remove it
- Fix container height to use MIN_HEIGHT instead of MAX_HEIGHT per row
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rows can now be reordered using up/down buttons. Buttons are disabled
at boundaries (up disabled on first row, down disabled on last row).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
BoardProvider now manages local board state and exposes updateBoard for
editing and saveBoard for persisting to the database. Supports both
create and edit modes with proper redirect after creation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>